From bfb9f7deda04698c30e6b671bf7069e8b5fbb75f Mon Sep 17 00:00:00 2001 From: "Yang, Wei" Date: Wed, 15 Jun 2011 16:06:48 +0100 Subject: [PATCH] Enable RDWRGSFS feature support for HVM guests Write/read FS/GS base instructions enable user level code to read/write FS & GS segment base registers for thread local storage. Signed-off-by: Yang, Wei --- tools/libxc/xc_cpuid_x86.c | 3 ++- xen/include/asm-x86/hvm/hvm.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c index d791691e69..d95baf5403 100644 --- a/tools/libxc/xc_cpuid_x86.c +++ b/tools/libxc/xc_cpuid_x86.c @@ -356,7 +356,8 @@ static void xc_cpuid_hvm_policy( case 0x00000007: /* Intel-defined CPU features */ if ( input[1] == 0 ) { regs[1] &= (bitmaskof(X86_FEATURE_SMEP) | - bitmaskof(X86_FEATURE_ERMS)); + bitmaskof(X86_FEATURE_ERMS) | + bitmaskof(X86_FEATURE_FSGSBASE)); } else regs[1] = 0; regs[0] = regs[2] = regs[3] = 0; diff --git a/xen/include/asm-x86/hvm/hvm.h b/xen/include/asm-x86/hvm/hvm.h index 527edcb5d3..b3394ae28c 100644 --- a/xen/include/asm-x86/hvm/hvm.h +++ b/xen/include/asm-x86/hvm/hvm.h @@ -325,6 +325,7 @@ static inline int hvm_do_pmu_interrupt(struct cpu_user_regs *regs) X86_CR4_MCE | X86_CR4_PGE | X86_CR4_PCE | \ X86_CR4_OSFXSR | X86_CR4_OSXMMEXCPT | \ (cpu_has_smep ? X86_CR4_SMEP : 0) | \ + (cpu_has_fsgsbase ? X86_CR4_FSGSBASE : 0) | \ ((nestedhvm_enabled((_v)->domain) && cpu_has_vmx)\ ? X86_CR4_VMXE : 0) | \ (xsave_enabled(_v) ? X86_CR4_OSXSAVE : 0)))) -- 2.30.2